package com.ruantu.clothing.dao;

import com.ruantu.clothing.entity.*;
import com.ruantu.clothing.entity.combobox.RukuTuiCombobox;

import java.util.List;
import java.util.Map;

public interface RukuMapper {

    List<Ruku> findRukuList(Map<String, Object> map);

    int findRukuListCount(Map<String, Object> map);

    /**
     * 提交入库单
     *
     * @param ruku
     * @return
     */
    int commitRukudan(Ruku ruku);

    /**
     * 重置入库单
     *
     * @param ruku
     * @return
     */
    int restRuku(Ruku ruku);

    /**
     * 查询一个裁剪单已入库数量
     *
     * @param id
     * @return
     */
    List<MyEntity> findTailorRuku(String id);

    /**
     * 新增入库单
     *
     * @param ruku
     * @return
     */
    int insertRuku(Ruku ruku);

    /**
     * 新增裁剪入库关系表
     *
     * @param
     * @return
     */
    int insertTailorRuku(List<TailorRuku> list);

    /**
     * @param ruku
     * @return
     */
    int ruku(Ruku ruku);

    /**
     * 删除入库单
     *
     * @param ruku
     * @return
     */
    int delRuku(Ruku ruku);

    /**
     * 驳回入库单
     *
     * @param ruku
     * @return
     */
    int bohui(Ruku ruku);

    /**
     * 根据入库单id查询详细信息进行反显
     *
     * @param ruku
     * @return
     */
    List<Rukuson> findRukuByRukuId(Ruku ruku);

    /**
     * 更新入库单
     *
     * @param rukus
     * @return
     */
    int updateRuku(Ruku rukus);

    /**
     * 根据入库单id删除关联表
     *
     * @param ruku
     * @return
     */
    int delTailorRuku(Ruku ruku);

    /**
     * 根据商品id查询入库单里是否存在
     *
     * @return
     */
    int findCountByProductId(String productId);

    /**
     * 查询所有入库单退货combobox
     *
     * @param map
     * @return
     */
    List<Ruku> findRukuDan(Map<String, Object> map);

    /**
     * 根据rukuid查询该入库单款号信息
     *
     * @param ruku
     * @return
     */
    List<RukuTuiCombobox> findProductByRukuId(Ruku ruku);

    /**
     * 根据入库id和product查询详细信息
     *
     * @param ruku
     * @return
     */
    List<RukuTuiCombobox> findDetails(Ruku ruku);

    /**
     * 根据入库id和product查询已退货的详细信息
     *
     * @param ruku
     * @return
     */
    List<RukuTuiCombobox> findDetailsYitui(Ruku ruku);

    /**
     * 根据退货单查询这一单总共退了货物
     */
    List<RukuTuiCombobox> findTuihuoByTuihuoId(Ruku ruku);

    /**
     * 查询该单一共可退货的数量
     *
     * @param ruku
     * @return
     */
    List<RukuTuiCombobox> findTuihuo(Ruku ruku);

    /**
     * 根据退货单id查询单据id
     *
     * @param ruku
     * @return
     */
    String findDanjuId(Ruku ruku);

    /**
     * 查询裁减退货数量
     *
     * @param map
     * @return
     */
    List<Ruku> findTaiorTui(Map<String, Object> map);
}